/**
 * Project Name:fastPlat
 * File Name:MemberService.java
 * Package Name:com.fast.user.service.member
 * Date:2016年11月30日 14时51分41秒;
 * Copyright (c) 2015, lsflu@126.com All Rights Reserved.
 *
*/

package com.fast.user.service.member;

import com.fast.base.dao.JdbcDao;
import com.fast.base.dao.JpaDao;
import com.fast.base.db.page.PageView;
import com.fast.base.util.web.ResponseData;
import com.fast.user.model.member.BrowseMemberInfo;
import com.fast.user.model.member.DeliveryAddress;
import com.fast.user.model.member.Member;
import com.fast.user.web.form.web.BrowerRecordsForm;
import com.fast.user.web.form.web.DeliveryAddressListForm;
import com.fast.user.web.form.web.MemberListForm;

/**
 * ClassName:MemberService <br/>
 * 用途: Member服务接口 <br/>
 * 开发人员：lushuifa  http://lushuifa.iteye.com/
 * 邮箱:lsflu@126.com
 * @version  
 * @since    JDK 1.6
 * @see
 * Date:     2016年11月30日 14时51分41秒; <br/>
 */
public interface MemberService extends JpaDao,JdbcDao {

	boolean isExistUser(String loginName);

	Member login(String loginName, String password);

	int increaseLoginCount(int id);

	String sendMobileCode(String mobile, String sendType);
	
	/**
	 * 发送验证邮件
	 * @param email
	 */
	boolean sendRegCheckEmail(Member member,String basePath);
    
	/**
	 * 作用：查看手机号是否存在 <br/>
	 * @author 卢水发
	 * @param mobile
	 * @return 
	 * @since JDK 1.6
	 * void
	 */
	boolean existMobile(String mobile);

	/**
	 * 作用：查看邮箱是否存在<br/>
	 * @author 卢水发
	 * @param email
	 * @return
	 * @since JDK 1.6
	 * boolean
	 */
	boolean existEmail(String email);

	/**
	 * 作用：发送邮件<br/>
	 * @author 卢水发
	 * @param email
	 * @return
	 * @since JDK 1.6
	 * boolean
	 */
	String sendEmailCode(String email, String sendType);

	/**
	 * 修改密码
	 * @param paramMap
	 * @return
	 */
	ResponseData updatePassword(int id,String newPassword);

	/**
	 * 检查身份证是否存在
	 * @param idcard
	 * @return
	 */
	boolean isExistIdCard(String idcard);

	/**
	 * 核对密码
	 * @param uuid
	 * @param password
	 * @return
	 */
	boolean checkPassword(String uuid, String password);

	/**
	 * 是否存在用户名
	 * @param loginName
	 * @return
	 */
	boolean isExistLoginName(String loginName);

	/**
	 * 是否存在用户名
	 * @param loginName
	 * @return
	 */
	boolean isExistLoginName(String loginName, int memberId);
	
	/**
	 * 是否存在某个邮箱
	 */
	boolean isExistEmail(String email);
	
	/**
	 * 是否存在某个邮箱
	 */
	boolean isExistEmail(String email,int memberId);
	
	/**
	 * 是否存在某个手机号
	 */
	boolean isExistMobile(String mobile);
	
	/**
	 * 是否存在某个手机号
	 */
	boolean isExistMobile(String mobile,int memberId);

	/**
	 * 通过ID
	 * @param id
	 * @return
	 */
	Member getMemberById(int id);

	/**
	 * 通过手机号来获取会员信息
	 * @param mobile 
	 * @return
	 */
	Member queryMemberByMobile(String mobile);

	/**
	 * 获取会员列表
	 * @param memberListForm
	 * @return
	 */
	PageView<Member> getMemberListByPage(MemberListForm memberListForm);

	/**
	 * 说明: 获取会员信息<br>
	 * 编写者:lushuifa
	 * 创建时间:2018年4月22日 下午11:43:57 </pre>
	 * @param 
	 * @return Member 说明
	 */
	Member getMemberByUUID(String uuid);

	/**
	 * 获取浏览记录（谁看过我）（我看过谁）
	 * @param browerRecordsForm
	 * @return
	 */
	PageView<BrowseMemberInfo> getBrowerRecords(BrowerRecordsForm browerRecordsForm);

	/**
	 * 获取邮寄地址列表
	 * @param deliveryAddressListForm
	 * @return
	 */
	PageView<DeliveryAddress> queryDeliveryAddressList(DeliveryAddressListForm deliveryAddressListForm);

	/**
	 * 说明: 批量保存会员数据，从xls中读取数据写入<br>
	 * 编写者:lushuifa
	 * 创建时间:2018年8月18日 下午3:59:21 </pre>
	 * @param 
	 * @return boolean 说明
	 */
	boolean batchSaveMemberByImpFile(String fileDiskPath);
}
